bitkeeper revision 1.1159.1.34 (4118d9b1ZXvgrP7sHLCZ6HCI8E4V0g)
authormjw@wray-m-3.hpl.hp.com <mjw@wray-m-3.hpl.hp.com>
Tue, 10 Aug 2004 14:20:33 +0000 (14:20 +0000)
committermjw@wray-m-3.hpl.hp.com <mjw@wray-m-3.hpl.hp.com>
Tue, 10 Aug 2004 14:20:33 +0000 (14:20 +0000)
Fix some restore problems.

tools/python/xen/xend/XendDomainInfo.py

index 4aa705e42a81dc83b1091a4297ef346121089f6c..0df3c2208ae06c915420cdac75356d3bd94180f2 100644 (file)
@@ -309,6 +309,7 @@ def vm_restore(src, progress=0):
     deferred = vm.dom_construct(dom, config)
     def vifs_cb(val, vm):
         vif_up(vm.ipaddrs)
+        return vm
     deferred.addCallback(vifs_cb, vm)
     return deferred
     
@@ -318,7 +319,7 @@ def dom_get(dom):
     @param dom: domain id
     @return: info or None
     """
-    domlist = xc.domain_getinfo(dom=dom)
+    domlist = xc.domain_getinfo(dom, 1)
     if domlist and dom == domlist[0]['dom']:
         return domlist[0]
     return None
@@ -633,7 +634,7 @@ class XendDomainInfo:
         try:
             return xc.domain_destroy(dom=self.dom)
         except Exception, err:
-            log.exception("Domain destroy failed: ", self.name)
+            log.exception("Domain destroy failed: %s", self.name)
 
     def cleanup(self):
         """Cleanup vm resources: release devices.
@@ -937,21 +938,15 @@ class XendDomainInfo:
         d = dom_get(dom)
         if not d:
             raise VmError("Domain not found: %d" % dom)
+        print 'dom_construct>', dom, config
         try:
-            self.config = config
             self.restore = 1
             self.setdom(dom)
             self.name = d['name']
-            self.memory = d['memory']/1024
-            deferred = self.construct()
-            def cberr(err):
-                self.destroy()
-                return err
-            deferred.addErrback(cberr)
+            self.memory = d['mem_kb']/1024
+            deferred = self.construct(config)
+        finally:
             self.restore = 0
-        except StandardError, ex:
-            self.destroy()
-            raise
         return deferred
 
     def configure_fields(self):